{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-ui-web",
      "artifactVersion": "2023.55.23",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.platform.ui",
          "org.nuxeo.ecm.platform.ui.select2",
          "org.nuxeo.ecm.platform.uidgen.core"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui",
        "id": "grp:org.nuxeo.ecm.platform.ui",
        "name": "org.nuxeo.ecm.platform.ui",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "2023.55"
      },
      "bundleId": "org.nuxeo.ecm.platform.ui",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--sessionManager",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.auth.JSFConfig/Contributions/org.nuxeo.ecm.platform.ui.web.auth.JSFConfig--sessionManager",
              "id": "org.nuxeo.ecm.platform.ui.web.auth.JSFConfig--sessionManager",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"sessionManager\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n\n    <sessionManager class=\"org.nuxeo.ecm.platform.ui.web.auth.plugins.SeamJsfSessionManager\" enabled=\"true\" name=\"SeamJsf\">\n    </sessionManager>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--openUrl",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.auth.JSFConfig/Contributions/org.nuxeo.ecm.platform.ui.web.auth.JSFConfig--openUrl",
              "id": "org.nuxeo.ecm.platform.ui.web.auth.JSFConfig--openUrl",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"openUrl\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n    <openUrl name=\"SystemLogRestlet\">\n      <grantPattern>/nuxeo/restAPI/systemLog</grantPattern>\n    </openUrl>\n    <openUrl name=\"SeamRemotingInterfaceResources\">\n      <grantPattern>/nuxeo/seam/resource/remoting/interface.js.*</grantPattern>\n    </openUrl>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.auth.JSFConfig",
          "name": "org.nuxeo.ecm.platform.ui.web.auth.JSFConfig",
          "requirements": [],
          "resolutionOrder": 549,
          "services": [],
          "startOrder": 545,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.auth.JSFConfig\">\n\n  <extension\n    target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\"\n    point=\"sessionManager\">\n\n    <sessionManager name=\"SeamJsf\" enabled=\"true\"\n      class=\"org.nuxeo.ecm.platform.ui.web.auth.plugins.SeamJsfSessionManager\">\n    </sessionManager>\n  </extension>\n\n  <extension\n    target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\"\n    point=\"openUrl\">\n    <openUrl name=\"SystemLogRestlet\">\n      <grantPattern>${org.nuxeo.ecm.contextPath}/restAPI/systemLog</grantPattern>\n    </openUrl>\n    <openUrl name=\"SeamRemotingInterfaceResources\">\n      <grantPattern>${org.nuxeo.ecm.contextPath}/seam/resource/remoting/interface.js.*</grantPattern>\n    </openUrl>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/authentication-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService",
          "documentation": "\n    The Pluggable Restlet service provides extension point to register new Restlets and\n    handle their configuration (Seam or Conversation usage).\n    @author Thierry Delprat (td@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nThe Pluggable Restlet service provides extension point to register new Restlets and\nhandle their configuration (Seam or Conversation usage).\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService",
              "descriptors": [
                "org.nuxeo.ecm.platform.ui.web.restAPI.service.RestletPluginDescriptor"
              ],
              "documentation": "\n\n      @author Thierry Delprat (td@nuxeo.com)\n      This extension point lets you contribute new Restlets: ie, new REST API executor.\n      Sample contribution:\n      <restletPlugin\n    class=\"implementation class, you can use BaseNuxeoRestlet as a base clas\"\n    enabled=\"true\" name=\"name of the restlet\"\n    useConversation=\"true/false : indicate if Seam conversation must be restored\" useSeam=\"true/false : indicate if Seam components will be used\">\n    <urlPatterns>\n        <urlPattern>/{repo}/{docid}/pluginUpload</urlPattern>\n    </urlPatterns>\n</restletPlugin>\n",
              "documentationHtml": "<p>\nThis extension point lets you contribute new Restlets: ie, new REST API executor.\nSample contribution:\n\n\n/{repo}/{docid}/pluginUpload\n\n</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService/ExtensionPoints/org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService--restlets",
              "id": "org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService--restlets",
              "label": "restlets (org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService)",
              "name": "restlets",
              "version": "2023.55.23"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService",
          "name": "org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService",
          "requirements": [],
          "resolutionOrder": 550,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService/Services/org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService",
              "id": "org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService",
              "overriden": false,
              "version": "2023.55.23"
            }
          ],
          "startOrder": 908,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService\">\n\n  <implementation\n          class=\"org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService\" />\n  </service>\n  <documentation>\n    The Pluggable Restlet service provides extension point to register new Restlets and\n    handle their configuration (Seam or Conversation usage).\n    @author Thierry Delprat (td@nuxeo.com)\n  </documentation>\n\n  <extension-point name=\"restlets\">\n    <documentation>\n      @author Thierry Delprat (td@nuxeo.com)\n      This extension point lets you contribute new Restlets: ie, new REST API executor.\n      Sample contribution:\n      <restletPlugin\n              name=\"name of the restlet\"\n              class=\"implementation class, you can use BaseNuxeoRestlet as a base clas\"\n              enabled=\"true\"\n              useSeam=\"true/false : indicate if Seam components will be used\"\n              useConversation=\"true/false : indicate if Seam conversation must be restored\">\n        <urlPatterns>\n          <urlPattern>/{repo}/{docid}/pluginUpload</urlPattern>\n        </urlPatterns>\n      </restletPlugin>\n    </documentation>\n\n    <object\n            class=\"org.nuxeo.ecm.platform.ui.web.restAPI.service.RestletPluginDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/restAPI-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Create a File document via upload\n      POST /nuxeo/restAPI/{repoId}/{docId}/{filename}/upload\n    \n",
              "documentationHtml": "<p>\nCreate a File document via upload\nPOST /nuxeo/restAPI/{repoId}/{docId}/{filename}/upload\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService--restlets",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.restAPI.contrib/Contributions/org.nuxeo.ecm.platform.ui.web.restAPI.contrib--restlets",
              "id": "org.nuxeo.ecm.platform.ui.web.restAPI.contrib--restlets",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService",
                "name": "org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"restlets\" target=\"org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService\">\n\n    <documentation>\n      Create a File document via upload\n      POST /nuxeo/restAPI/{repoId}/{docId}/{filename}/upload\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.UploadRestlet\" enabled=\"true\" name=\"upload\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/{filename}/upload</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Restlet for uploading a file via the Plugin (linked to FileManager)\n      (ie create a document from a file)\n      POST /nuxeo/restAPI/{repoId}/{docId}/pluginUpload/{path}\n      POST /nuxeo/restAPI/{repoId}/{docId}/createFromFile/{path}\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.PluginUploadRestlet\" enabled=\"true\" name=\"pluginUpload\" useConversation=\"false\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/pluginUpload</urlPattern>\n        <urlPattern>/{repo}/{docid}/createFromFile</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Simple restlet to browse content\n      GET /nuxeo/restAPI/browse\n      GET /nuxeo/restAPI/{repoId}/browse\n      GET /nuxeo/restAPI/{repoId}/{docId}/browse\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.BrowseRestlet\" enabled=\"true\" name=\"browse\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/browse</urlPattern>\n        <urlPattern>/{repo}/browse</urlPattern>\n        <urlPattern>/{repo}/{docid}/browse</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/{repoId}/{docId}/export\n      =&gt; export a document and possibly associated tree\n\n      GET /nuxeo/restAPI/{repoId}/{docId}/exportSingle\n      =&gt; export a single document\n\n      GET /nuxeo/restAPI/{repoId}/{docId}/exportTree\n      =&gt; export a document tree\n\n      Associated GET parameters are :\n      - format : xml/zip\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.ExportRestlet\" enabled=\"true\" name=\"export\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/export</urlPattern>\n        <urlPattern>/{repo}/{docid}/exportSingle</urlPattern>\n        <urlPattern>/{repo}/{docid}/exportTree</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Allows lock manipulation via Restlet API:\n      GET /nuxeo/restAPI/{repoId}/{docId}/Locking/lock\n      GET /nuxeo/restAPI/{repoId}/{docId}/Locking/unlock\n      GET /nuxeo/restAPI/{repoId}/{docId}/Locking/status\n      GET /nuxeo/restAPI/{repoId}/{docId}/Locking/state\n      LOCK /nuxeo/restAPI/{repoId}/{docId}/Locking\n      UNLOCK /nuxeo/restAPI/{repoId}/{docId}/Locking\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.LockingRestlet\" enabled=\"true\" name=\"locking\" useConversation=\"false\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/Locking</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/{repoId}/{docId}/downloadFile\n      or equivalently with optional query parameters:\n      GET /nuxeo/restAPI/{repoId}/{docId}/downloadFile?schema=file&amp;blobField=content&amp;filenameField=filename\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.DownloadFileRestlet\" enabled=\"true\" name=\"downloadFileRestlet\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/downloadFile</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Upload a file in an existing document\n      POST /nuxeo/restAPI/{repo}/{docid}/{filename}/uploadFile\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.UploadFileRestlet\" enabled=\"true\" name=\"uploadFileRestlet\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/{filename}/uploadFile</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/{repo}/{parentdocid}/createDocument\n      or equivalently with optional query paramaters:\n      GET /nuxeo/restAPI/{repo}/{parentdocid}/createDocument?docType=File\n      or\n      POST /nuxeo/restAPI/{repo}/{parentdocid}/createDocument\n      with arguments with initial values of the documents fields as string valued properties\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.CreateDocumentRestlet\" enabled=\"true\" name=\"createDocumentRestlet\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{parentdocid}/createDocument</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Allows deleting documents via Restlet API:\n      GET /nuxeo/restAPI/{repoId}/{docId}/deleteDocumentRestlet\n      GET /nuxeo/restAPI/{repoId}/{docId}/delete\n      GET /nuxeo/restAPI/{repoId}/deleteDocumentByPath?path=/default-domain/workspaces/doc1\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.DeleteDocumentRestlet\" enabled=\"true\" name=\"deleteDocumentRestlet\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/deleteDocumentRestlet</urlPattern>\n        <urlPattern>/{repo}/{docid}/delete</urlPattern>\n        <urlPattern>/{repo}/deleteDocumentByPath</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Allows to update document properties via Restlet API:\n      GET /nuxeo/restAPI/{repoId}/{docId}/updateDocumentRestlet?prop1=value1\n      GET /nuxeo/restAPI/{repoId}/{docId}/update?prop1=value1\n      example : http://127.0.0.1:8080/nuxeo/restAPI/default/1fee4b3e-8b8e-494e-b0a5-eef5113fb5a7/updateDocumentRestlet?dublincore:description=No%20comment\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.UpdateDocumentRestlet\" enabled=\"true\" name=\"updateDocumentRestlet\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/updateDocumentRestlet</urlPattern>\n        <urlPattern>/{repo}/{docid}/update</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/creationContainerList\n      or equivalently with optional query paramaters (where docType is the\n      type of the document to create):\n      GET /nuxeo/restAPI/creationContainerList?docType=File\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.CreationContainerListRestlet\" enabled=\"true\" name=\"creationFolderListRestlet\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/creationContainerList</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/opensearch?q=keywords\n\n      Perform a document search on the ecm:fulltext index and return the\n      results as a RSS 2.0 file with opensearch.org metadata\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.OpenSearchRestlet\" enabled=\"true\" name=\"openSearchRestlet\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/opensearch</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/directoryCacheInvalidate\n      GET /nuxeo/restAPI/directoryCacheInvalidate?directory=userDirectory&amp;directory=groupDirectory\n\n      Invalidate the cache of the requested directories or of all directories if not directory name is given as parameter.\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.DirectoryCacheRestlet\" enabled=\"true\" name=\"directoryCache\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/directoryCacheInvalidate</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/systemLog?token=1234&amp;level=INFO&amp;message=something\n\n      Log something in the system logs of the server. The token has to match\n      the system property org.nuxeo.systemlog.token.\n    </documentation>\n    <restletPlugin class=\"org.nuxeo.ecm.platform.ui.web.restAPI.SystemLogRestlet\" enabled=\"true\" name=\"systemLog\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/systemLog</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.restAPI.contrib",
          "name": "org.nuxeo.ecm.platform.ui.web.restAPI.contrib",
          "requirements": [],
          "resolutionOrder": 551,
          "services": [],
          "startOrder": 556,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.restAPI.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.restAPI.service.PluggableRestletService\"\n      point=\"restlets\">\n\n    <documentation>\n      Create a File document via upload\n      POST /nuxeo/restAPI/{repoId}/{docId}/{filename}/upload\n    </documentation>\n    <restletPlugin\n        name=\"upload\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.UploadRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/{filename}/upload</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Restlet for uploading a file via the Plugin (linked to FileManager)\n      (ie create a document from a file)\n      POST /nuxeo/restAPI/{repoId}/{docId}/pluginUpload/{path}\n      POST /nuxeo/restAPI/{repoId}/{docId}/createFromFile/{path}\n    </documentation>\n    <restletPlugin\n        name=\"pluginUpload\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.PluginUploadRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\"\n        useConversation=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/pluginUpload</urlPattern>\n        <urlPattern>/{repo}/{docid}/createFromFile</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Simple restlet to browse content\n      GET /nuxeo/restAPI/browse\n      GET /nuxeo/restAPI/{repoId}/browse\n      GET /nuxeo/restAPI/{repoId}/{docId}/browse\n    </documentation>\n    <restletPlugin\n        name=\"browse\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.BrowseRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/browse</urlPattern>\n        <urlPattern>/{repo}/browse</urlPattern>\n        <urlPattern>/{repo}/{docid}/browse</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/{repoId}/{docId}/export\n      => export a document and possibly associated tree\n\n      GET /nuxeo/restAPI/{repoId}/{docId}/exportSingle\n      => export a single document\n\n      GET /nuxeo/restAPI/{repoId}/{docId}/exportTree\n      => export a document tree\n\n      Associated GET parameters are :\n      - format : xml/zip\n    </documentation>\n    <restletPlugin\n        name=\"export\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.ExportRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/export</urlPattern>\n        <urlPattern>/{repo}/{docid}/exportSingle</urlPattern>\n        <urlPattern>/{repo}/{docid}/exportTree</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Allows lock manipulation via Restlet API:\n      GET /nuxeo/restAPI/{repoId}/{docId}/Locking/lock\n      GET /nuxeo/restAPI/{repoId}/{docId}/Locking/unlock\n      GET /nuxeo/restAPI/{repoId}/{docId}/Locking/status\n      GET /nuxeo/restAPI/{repoId}/{docId}/Locking/state\n      LOCK /nuxeo/restAPI/{repoId}/{docId}/Locking\n      UNLOCK /nuxeo/restAPI/{repoId}/{docId}/Locking\n    </documentation>\n    <restletPlugin\n        name=\"locking\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.LockingRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\"\n        useConversation=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/Locking</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/{repoId}/{docId}/downloadFile\n      or equivalently with optional query parameters:\n      GET /nuxeo/restAPI/{repoId}/{docId}/downloadFile?schema=file&amp;blobField=content&amp;filenameField=filename\n    </documentation>\n    <restletPlugin\n        name=\"downloadFileRestlet\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.DownloadFileRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/downloadFile</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Upload a file in an existing document\n      POST /nuxeo/restAPI/{repo}/{docid}/{filename}/uploadFile\n    </documentation>\n    <restletPlugin\n        name=\"uploadFileRestlet\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.UploadFileRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/{filename}/uploadFile</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/{repo}/{parentdocid}/createDocument\n      or equivalently with optional query paramaters:\n      GET /nuxeo/restAPI/{repo}/{parentdocid}/createDocument?docType=File\n      or\n      POST /nuxeo/restAPI/{repo}/{parentdocid}/createDocument\n      with arguments with initial values of the documents fields as string valued properties\n    </documentation>\n    <restletPlugin\n        name=\"createDocumentRestlet\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.CreateDocumentRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{parentdocid}/createDocument</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Allows deleting documents via Restlet API:\n      GET /nuxeo/restAPI/{repoId}/{docId}/deleteDocumentRestlet\n      GET /nuxeo/restAPI/{repoId}/{docId}/delete\n      GET /nuxeo/restAPI/{repoId}/deleteDocumentByPath?path=/default-domain/workspaces/doc1\n    </documentation>\n    <restletPlugin\n        name=\"deleteDocumentRestlet\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.DeleteDocumentRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/deleteDocumentRestlet</urlPattern>\n        <urlPattern>/{repo}/{docid}/delete</urlPattern>\n        <urlPattern>/{repo}/deleteDocumentByPath</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      Allows to update document properties via Restlet API:\n      GET /nuxeo/restAPI/{repoId}/{docId}/updateDocumentRestlet?prop1=value1\n      GET /nuxeo/restAPI/{repoId}/{docId}/update?prop1=value1\n      example : http://127.0.0.1:8080/nuxeo/restAPI/default/1fee4b3e-8b8e-494e-b0a5-eef5113fb5a7/updateDocumentRestlet?dublincore:description=No%20comment\n    </documentation>\n    <restletPlugin\n        name=\"updateDocumentRestlet\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.UpdateDocumentRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/{repo}/{docid}/updateDocumentRestlet</urlPattern>\n        <urlPattern>/{repo}/{docid}/update</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/creationContainerList\n      or equivalently with optional query paramaters (where docType is the\n      type of the document to create):\n      GET /nuxeo/restAPI/creationContainerList?docType=File\n    </documentation>\n    <restletPlugin\n        name=\"creationFolderListRestlet\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.CreationContainerListRestlet\"\n        enabled=\"true\"\n        useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/creationContainerList</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/opensearch?q=keywords\n\n      Perform a document search on the ecm:fulltext index and return the\n      results as a RSS 2.0 file with opensearch.org metadata\n    </documentation>\n    <restletPlugin name=\"openSearchRestlet\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.OpenSearchRestlet\"\n        enabled=\"true\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/opensearch</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/directoryCacheInvalidate\n      GET /nuxeo/restAPI/directoryCacheInvalidate?directory=userDirectory&amp;directory=groupDirectory\n\n      Invalidate the cache of the requested directories or of all directories if not directory name is given as parameter.\n    </documentation>\n    <restletPlugin name=\"directoryCache\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.DirectoryCacheRestlet\"\n        enabled=\"true\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/directoryCacheInvalidate</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n    <documentation>\n      GET /nuxeo/restAPI/systemLog?token=1234&amp;level=INFO&amp;message=something\n\n      Log something in the system logs of the server. The token has to match\n      the system property org.nuxeo.systemlog.token.\n    </documentation>\n    <restletPlugin name=\"systemLog\"\n        class=\"org.nuxeo.ecm.platform.ui.web.restAPI.SystemLogRestlet\"\n        enabled=\"true\" useSeam=\"false\">\n      <urlPatterns>\n        <urlPattern>/systemLog</urlPattern>\n      </urlPatterns>\n    </restletPlugin>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/restAPI-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.ui.web.rest.services.URLServiceComponent",
          "documentation": "\n    The URL service provides extension points for url generation and related\n    actions.\n\n    @author Anahide Tchertchian (at@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nThe URL service provides extension points for url generation and related\nactions.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.ui.web.rest.URLService",
              "descriptors": [
                "org.nuxeo.ecm.platform.ui.web.rest.descriptors.URLPatternDescriptor"
              ],
              "documentation": "\n      URL patterns are used on the web layer to perform actions when a url is\n      entered, and to rewrite urls after a post.\n\n      They are designed to use a given codec.\n    \n",
              "documentationHtml": "<p>\nURL patterns are used on the web layer to perform actions when a url is\nentered, and to rewrite urls after a post.\n</p><p>\nThey are designed to use a given codec.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.rest.URLService/ExtensionPoints/org.nuxeo.ecm.platform.ui.web.rest.URLService--urlpatterns",
              "id": "org.nuxeo.ecm.platform.ui.web.rest.URLService--urlpatterns",
              "label": "urlpatterns (org.nuxeo.ecm.platform.ui.web.rest.URLService)",
              "name": "urlpatterns",
              "version": "2023.55.23"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.EventService--listeners",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.rest.URLService/Contributions/org.nuxeo.ecm.platform.ui.web.rest.URLService--listeners",
              "id": "org.nuxeo.ecm.platform.ui.web.rest.URLService--listeners",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.EventService",
                "name": "org.nuxeo.runtime.EventService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"listeners\" target=\"org.nuxeo.runtime.EventService\">\n    <listener class=\"org.nuxeo.ecm.platform.ui.web.rest.services.URLPolicyServiceCacheFlusher\">\n      <topic>org.nuxeo.runtime.reload</topic>\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.rest.URLService",
          "name": "org.nuxeo.ecm.platform.ui.web.rest.URLService",
          "requirements": [],
          "resolutionOrder": 552,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.ui.web.rest.URLService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.rest.URLService/Services/org.nuxeo.ecm.platform.ui.web.rest.api.URLPolicyService",
              "id": "org.nuxeo.ecm.platform.ui.web.rest.api.URLPolicyService",
              "overriden": false,
              "version": "2023.55.23"
            }
          ],
          "startOrder": 907,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.ui.web.rest.URLService\">\n\n  <documentation>\n    The URL service provides extension points for url generation and related\n    actions.\n\n    @author Anahide Tchertchian (at@nuxeo.com)\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.platform.ui.web.rest.services.URLServiceComponent\" />\n\n  <service>\n    <provide\n      interface=\"org.nuxeo.ecm.platform.ui.web.rest.api.URLPolicyService\" />\n  </service>\n\n  <extension-point name=\"urlpatterns\">\n    <documentation>\n      URL patterns are used on the web layer to perform actions when a url is\n      entered, and to rewrite urls after a post.\n\n      They are designed to use a given codec.\n    </documentation>\n    <object\n      class=\"org.nuxeo.ecm.platform.ui.web.rest.descriptors.URLPatternDescriptor\" />\n  </extension-point>\n\n  <extension target=\"org.nuxeo.runtime.EventService\" point=\"listeners\">\n    <listener\n      class=\"org.nuxeo.ecm.platform.ui.web.rest.services.URLPolicyServiceCacheFlusher\">\n      <topic>org.nuxeo.runtime.reload</topic>\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/urlservice-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Contributions for basic rest navigation through the application.\n\n    @author Anahide Tchertchian (at@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nContributions for basic rest navigation through the application.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Basic url pattern using the doc id codec: it places the application in the\n      document context described by the url and sets current tabs.\n\n      Additional url pattern using the doc path codec.\n    \n",
              "documentationHtml": "<p>\nBasic url pattern using the doc id codec: it places the application in the\ndocument context described by the url and sets current tabs.\n</p><p>\nAdditional url pattern using the doc path codec.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.rest.URLService--urlpatterns",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.rest.URLService.contrib/Contributions/org.nuxeo.ecm.platform.ui.web.rest.URLService.contrib--urlpatterns",
              "id": "org.nuxeo.ecm.platform.ui.web.rest.URLService.contrib--urlpatterns",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.rest.URLService",
                "name": "org.nuxeo.ecm.platform.ui.web.rest.URLService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"urlpatterns\" target=\"org.nuxeo.ecm.platform.ui.web.rest.URLService\">\n\n    <documentation>\n      Basic url pattern using the doc id codec: it places the application in the\n      document context described by the url and sets current tabs.\n\n      Additional url pattern using the doc path codec.\n    </documentation>\n\n    <urlPattern enabled=\"true\" name=\"id\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>true</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>docid</codecName>\n      <actionBinding>#{restHelper.initContextFromRestRequest}</actionBinding>\n      <documentViewBinding>#{restHelper.documentView}</documentViewBinding>\n      <newDocumentViewBinding>\n        #{restHelper.newDocumentView}\n      </newDocumentViewBinding>\n      <bindings>\n        <binding callGetter=\"false\" name=\"tabId\">\n          #{webActions.currentTabId}\n        </binding>\n        <binding callGetter=\"false\" name=\"subTabId\">\n          #{webActions.currentSubTabId}\n        </binding>\n        <binding name=\"tabIds\">#{webActions.currentTabIds}</binding>\n        <binding callGetter=\"false\" name=\"language\">\n          #{restHelper.localeString}\n        </binding>\n      </bindings>\n    </urlPattern>\n\n    <urlPattern enabled=\"true\" name=\"default\">\n      <defaultURLPolicy>true</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>true</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>docpath</codecName>\n      <actionBinding>#{restHelper.initContextFromRestRequest}</actionBinding>\n      <documentViewBinding>#{restHelper.documentView}</documentViewBinding>\n      <newDocumentViewBinding>\n        #{restHelper.newDocumentView}\n      </newDocumentViewBinding>\n      <bindings>\n        <binding callGetter=\"false\" name=\"tabId\">\n          #{webActions.currentTabId}\n        </binding>\n        <binding callGetter=\"false\" name=\"subTabId\">\n          #{webActions.currentSubTabId}\n        </binding>\n        <binding name=\"tabIds\">#{webActions.currentTabIds}</binding>\n        <binding callGetter=\"false\" name=\"language\">\n          #{restHelper.localeString}\n        </binding>\n        <binding callGetter=\"false\" name=\"mainTabId\">\n          #{webActions.currentTabIds}\n        </binding>\n      </bindings>\n    </urlPattern>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.rest.URLService.contrib",
          "name": "org.nuxeo.ecm.platform.ui.web.rest.URLService.contrib",
          "requirements": [],
          "resolutionOrder": 553,
          "services": [],
          "startOrder": 555,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.rest.URLService.contrib\">\n  <documentation>\n    Contributions for basic rest navigation through the application.\n\n    @author Anahide Tchertchian (at@nuxeo.com)\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.rest.URLService\"\n    point=\"urlpatterns\">\n\n    <documentation>\n      Basic url pattern using the doc id codec: it places the application in the\n      document context described by the url and sets current tabs.\n\n      Additional url pattern using the doc path codec.\n    </documentation>\n\n    <urlPattern name=\"id\" enabled=\"true\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>true</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>docid</codecName>\n      <actionBinding>#{restHelper.initContextFromRestRequest}</actionBinding>\n      <documentViewBinding>#{restHelper.documentView}</documentViewBinding>\n      <newDocumentViewBinding>\n        #{restHelper.newDocumentView}\n      </newDocumentViewBinding>\n      <bindings>\n        <binding name=\"tabId\" callGetter=\"false\">\n          #{webActions.currentTabId}\n        </binding>\n        <binding name=\"subTabId\" callGetter=\"false\">\n          #{webActions.currentSubTabId}\n        </binding>\n        <binding name=\"tabIds\">#{webActions.currentTabIds}</binding>\n        <binding name=\"language\" callGetter=\"false\">\n          #{restHelper.localeString}\n        </binding>\n      </bindings>\n    </urlPattern>\n\n    <urlPattern name=\"default\" enabled=\"true\">\n      <defaultURLPolicy>true</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>true</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>docpath</codecName>\n      <actionBinding>#{restHelper.initContextFromRestRequest}</actionBinding>\n      <documentViewBinding>#{restHelper.documentView}</documentViewBinding>\n      <newDocumentViewBinding>\n        #{restHelper.newDocumentView}\n      </newDocumentViewBinding>\n      <bindings>\n        <binding name=\"tabId\" callGetter=\"false\">\n          #{webActions.currentTabId}\n        </binding>\n        <binding name=\"subTabId\" callGetter=\"false\">\n          #{webActions.currentSubTabId}\n        </binding>\n        <binding name=\"tabIds\">#{webActions.currentTabIds}</binding>\n        <binding name=\"language\" callGetter=\"false\">\n          #{restHelper.localeString}\n        </binding>\n        <binding name=\"mainTabId\" callGetter=\"false\">\n          #{webActions.currentTabIds}\n        </binding>\n      </bindings>\n    </urlPattern>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/urlservice-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl",
          "documentation": "\n    The HTMLEditorPLuginService provide extension points to configure TinyMCE in Nuxeo.\n    @author Thomas Roger (troger@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nThe HTMLEditorPLuginService provide extension points to configure TinyMCE in Nuxeo.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl",
              "descriptors": [
                "org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginDescriptor"
              ],
              "documentation": "\n\n      @author Thomas Roger(troger@nuxeo.com)\n      This extension point let you contribute new plugins to TinyMCE.\n      Sample contribution :\n      <htmlEditorPlugin\n    pluginButtonName=\"name of the plugin's button\"\n    pluginName=\"name of the plugin\" toolbarName=\"toolbar where to put the button\"/>\n",
              "documentationHtml": "<p>\nThis extension point let you contribute new plugins to TinyMCE.\nSample contribution :\n</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl/ExtensionPoints/org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl--plugins",
              "id": "org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl--plugins",
              "label": "plugins (org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl)",
              "name": "plugins",
              "version": "2023.55.23"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl",
          "name": "org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl",
          "requirements": [],
          "resolutionOrder": 554,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl/Services/org.nuxeo.ecm.platform.ui.web.htmleditor.api.HtmlEditorPluginService",
              "id": "org.nuxeo.ecm.platform.ui.web.htmleditor.api.HtmlEditorPluginService",
              "overriden": false,
              "version": "2023.55.23"
            }
          ],
          "startOrder": 906,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl\">\n\n  <documentation>\n    The HTMLEditorPLuginService provide extension points to configure TinyMCE in Nuxeo.\n    @author Thomas Roger (troger@nuxeo.com)\n  </documentation>\n\n  <service>\n    <provide\n        interface=\"org.nuxeo.ecm.platform.ui.web.htmleditor.api.HtmlEditorPluginService\"/>\n  </service>\n\n  <implementation\n      class=\"org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl\"/>\n\n  <extension-point name=\"plugins\">\n    <documentation>\n      @author Thomas Roger(troger@nuxeo.com)\n      This extension point let you contribute new plugins to TinyMCE.\n      Sample contribution :\n      <htmlEditorPlugin\n          pluginName=\"name of the plugin\"\n          pluginButtonName=\"name of the plugin's button\"\n          toolbarName=\"toolbar where to put the button\">\n      </htmlEditorPlugin>\n    </documentation>\n\n    <object\n        class=\"org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginDescriptor\"/>\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/htmleditor-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl--plugins",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.htmleditor.contrib/Contributions/org.nuxeo.ecm.platform.ui.web.htmleditor.contrib--plugins",
              "id": "org.nuxeo.ecm.platform.ui.web.htmleditor.contrib--plugins",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl",
                "name": "org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"plugins\" target=\"org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl\">\n\n   <htmlEditorPlugin pluginButtonName=\"nuxeolink\" pluginName=\"nuxeolink\" toolbarName=\"theme_advanced_buttons3_add\">\n   </htmlEditorPlugin>\n\n   <htmlEditorPlugin pluginButtonName=\"nuxeoimageupload\" pluginName=\"nuxeoimageupload\" toolbarName=\"theme_advanced_buttons3_add\">\n   </htmlEditorPlugin>\n\n   <htmlEditorPlugin pluginButtonName=\"fullscreen\" pluginName=\"fullscreen\" toolbarName=\"theme_advanced_buttons3_add\">\n   </htmlEditorPlugin>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.htmleditor.contrib",
          "name": "org.nuxeo.ecm.platform.ui.web.htmleditor.contrib",
          "requirements": [],
          "resolutionOrder": 555,
          "services": [],
          "startOrder": 552,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.htmleditor.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.htmleditor.service.HtmlEditorPluginServiceImpl\"\n      point=\"plugins\">\n\n   <htmlEditorPlugin\n           pluginName=\"nuxeolink\"\n           pluginButtonName=\"nuxeolink\"\n           toolbarName=\"theme_advanced_buttons3_add\">\n   </htmlEditorPlugin>\n\n   <htmlEditorPlugin\n           pluginName=\"nuxeoimageupload\"\n           pluginButtonName=\"nuxeoimageupload\"\n           toolbarName=\"theme_advanced_buttons3_add\">\n   </htmlEditorPlugin>\n\n   <htmlEditorPlugin\n           pluginName=\"fullscreen\"\n           pluginButtonName=\"fullscreen\"\n           toolbarName=\"theme_advanced_buttons3_add\">\n   </htmlEditorPlugin>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/htmleditor-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService--filterConfig",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.RequestControllerService.contrib/Contributions/org.nuxeo.ecm.platform.ui.web.RequestControllerService.contrib--filterConfig",
              "id": "org.nuxeo.ecm.platform.ui.web.RequestControllerService.contrib--filterConfig",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService",
                "name": "org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"filterConfig\" target=\"org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService\">\n\n    <filterConfig name=\"SeamRemoting\" synchonize=\"false\" transactional=\"true\">\n      <pattern>/nuxeo/seam/resource/remoting/execute.*</pattern>\n    </filterConfig>\n\n    <filterConfig cacheTime=\"3600\" cached=\"true\" name=\"SeamRemotingInterface\">\n     <pattern>/nuxeo/seam/resource/remoting/interface.js.*</pattern>\n    </filterConfig>\n\n    <filterConfig cacheTime=\"3600\" cached=\"true\" name=\"tinymce\">\n      <pattern>/nuxeo/tinymce.*</pattern>\n    </filterConfig>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.RequestControllerService.contrib",
          "name": "org.nuxeo.ecm.platform.ui.web.RequestControllerService.contrib",
          "requirements": [],
          "resolutionOrder": 556,
          "services": [],
          "startOrder": 542,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.RequestControllerService.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService\"\n    point=\"filterConfig\">\n\n    <filterConfig name=\"SeamRemoting\" transactional=\"true\" synchonize=\"false\">\n      <pattern>${org.nuxeo.ecm.contextPath}/seam/resource/remoting/execute.*</pattern>\n    </filterConfig>\n\n    <filterConfig name=\"SeamRemotingInterface\" cached=\"true\" cacheTime=\"3600\">\n     <pattern>${org.nuxeo.ecm.contextPath}/seam/resource/remoting/interface.js.*</pattern>\n    </filterConfig>\n\n    <filterConfig name=\"tinymce\" cached=\"true\" cacheTime=\"3600\">\n      <pattern>${org.nuxeo.ecm.contextPath}/tinymce.*</pattern>\n    </filterConfig>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/request-controler-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.ui.web.seamremoting.SeamRemotingJSBuilderComponent",
          "documentation": "\n      Manages Seam components that have a JS remoting interface that must be automatically included in default Nuxeo Pages.\n    @author Thierry Delprat (td@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nManages Seam components that have a JS remoting interface that must be automatically included in default Nuxeo Pages.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent",
              "descriptors": [
                "org.nuxeo.ecm.platform.ui.web.seamremoting.RemotableSeamBeansDescriptor"
              ],
              "documentation": "\n      @author Thierry Delprat (td@nuxeo.com)\n      Registers JS Remotable Seam Beans by their names\n    \n",
              "documentationHtml": "<p>\nRegisters JS Remotable Seam Beans by their names\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent/ExtensionPoints/org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent--remotableSeamBeans",
              "id": "org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent--remotableSeamBeans",
              "label": "remotableSeamBeans (org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent)",
              "name": "remotableSeamBeans",
              "version": "2023.55.23"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent",
          "name": "org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent",
          "requirements": [],
          "resolutionOrder": 557,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent/Services/org.nuxeo.ecm.platform.ui.web.seamremoting.SeamRemotingJSBuilderService",
              "id": "org.nuxeo.ecm.platform.ui.web.seamremoting.SeamRemotingJSBuilderService",
              "overriden": false,
              "version": "2023.55.23"
            }
          ],
          "startOrder": 903,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent\">\n\n  <implementation\n      class=\"org.nuxeo.ecm.platform.ui.web.seamremoting.SeamRemotingJSBuilderComponent\"/>\n\n  <documentation>\n      Manages Seam components that have a JS remoting interface that must be automatically included in default Nuxeo Pages.\n    @author Thierry Delprat (td@nuxeo.com)\n  </documentation>\n\n  <service>\n    <provide\n        interface=\"org.nuxeo.ecm.platform.ui.web.seamremoting.SeamRemotingJSBuilderService\"/>\n  </service>\n\n  <extension-point name=\"remotableSeamBeans\">\n    <documentation>\n      @author Thierry Delprat (td@nuxeo.com)\n      Registers JS Remotable Seam Beans by their names\n    </documentation>\n    <object\n        class=\"org.nuxeo.ecm.platform.ui.web.seamremoting.RemotableSeamBeansDescriptor\"/>\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/seamremotingjsbuilder-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.EventService--listeners",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.ui.jsf.reload/Contributions/org.nuxeo.ecm.ui.jsf.reload--listeners",
              "id": "org.nuxeo.ecm.ui.jsf.reload--listeners",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.EventService",
                "name": "org.nuxeo.runtime.EventService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"listeners\" target=\"org.nuxeo.runtime.EventService\">\n    <listener class=\"org.nuxeo.ecm.platform.ui.web.reload.NuxeoJSFReloadHandler\">\n      <topic>org.nuxeo.runtime.reload</topic>\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.ui.jsf.reload",
          "name": "org.nuxeo.ecm.ui.jsf.reload",
          "requirements": [],
          "resolutionOrder": 558,
          "services": [],
          "startOrder": 612,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.ui.jsf.reload\">\n\n  <extension target=\"org.nuxeo.runtime.EventService\" point=\"listeners\">\n    <listener class=\"org.nuxeo.ecm.platform.ui.web.reload.NuxeoJSFReloadHandler\">\n      <topic>org.nuxeo.runtime.reload</topic>\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/reload-jsf-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.cache.CacheService--caches",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.tag.fn.cache/Contributions/org.nuxeo.ecm.platform.ui.web.tag.fn.cache--caches",
              "id": "org.nuxeo.ecm.platform.ui.web.tag.fn.cache--caches",
              "registrationOrder": 6,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.cache.CacheService",
                "name": "org.nuxeo.ecm.core.cache.CacheService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"caches\" target=\"org.nuxeo.ecm.core.cache.CacheService\">\n\n    <cache name=\"userDisplayName\">\n      <option name=\"maxSize\">1000</option>\n      <option name=\"concurrencyLevel\">10</option>\n      <ttl>30</ttl>\n    </cache>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.tag.fn.cache",
          "name": "org.nuxeo.ecm.platform.ui.web.tag.fn.cache",
          "requirements": [],
          "resolutionOrder": 559,
          "services": [],
          "startOrder": 557,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.tag.fn.cache\">\n\n  <extension target=\"org.nuxeo.ecm.core.cache.CacheService\" point=\"caches\">\n\n    <cache name=\"userDisplayName\">\n      <option name=\"maxSize\">1000</option>\n      <option name=\"concurrencyLevel\">10</option>\n      <ttl>30</ttl>\n    </cache>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/username-cache-config.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService",
          "documentation": "\n    Registry for JSF File Uploaders.\n  \n",
          "documentationHtml": "<p>\nRegistry for JSF File Uploaders.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService",
              "descriptors": [
                "org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService/ExtensionPoints/org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService--uploader",
              "id": "org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService--uploader",
              "label": "uploader (org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService)",
              "name": "uploader",
              "version": "2023.55.23"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService--uploader",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService/Contributions/org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService--uploader",
              "id": "org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService--uploader",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService",
                "name": "org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"uploader\" target=\"org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService\">\n    <uploader class=\"org.nuxeo.ecm.platform.ui.web.component.file.HTMLBlobUploader\" id=\"HTML\" order=\"10\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService",
          "name": "org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService",
          "requirements": [],
          "resolutionOrder": 560,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService/Services/org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService",
              "id": "org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService",
              "overriden": false,
              "version": "2023.55.23"
            }
          ],
          "startOrder": 905,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService\" version=\"1.0.0\">\n\n  <documentation>\n    Registry for JSF File Uploaders.\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService\" />\n  </service>\n\n  <extension-point name=\"uploader\">\n    <object class=\"org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderDescriptor\" />\n  </extension-point>\n\n  <!-- register the default one -->\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.component.file.JSFBlobUploaderService\" point=\"uploader\">\n    <uploader id=\"HTML\" order=\"10\" class=\"org.nuxeo.ecm.platform.ui.web.component.file.HTMLBlobUploader\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/jsfblobuploader-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      This contribution is the default contribution for JSF configurations.\n\n      Here are more details about some of them:\n      <ul>\n    <li>\n        <strong>nuxeo.jsf.enableDoubleClickShield</strong>: enables a shield on forms to prevent users from\n          submitting twice the same form (accidental double-click).\n        </li>\n    <li>\n\n        <strong>nuxeo.jsf.defaultBytePrefixFormat</strong>: defines the default byte prefix format used by the\n          printFileSize JSF function, that displays a pretty print of the size of a file. Available formats are \"SI\",\n          \"IEC\" or \"JEDEC\". See <a\n            href=\"http://en.wikipedia.org/wiki/Byte\" target=\"_blank\">the Wikipedia article on\n          Byte</a> for more information on those formats.\n        </li>\n</ul>\n\n\n      @since 7.4\n    \n",
              "documentationHtml": "<p>\nThis contribution is the default contribution for JSF configurations.\n</p><p>\nHere are more details about some of them:\n</p><ul><li>\n<strong>nuxeo.jsf.enableDoubleClickShield</strong>: enables a shield on forms to prevent users from\nsubmitting twice the same form (accidental double-click).\n</li><li>\n<p>\n<strong>nuxeo.jsf.defaultBytePrefixFormat</strong>: defines the default byte prefix format used by the\nprintFileSize JSF function, that displays a pretty print of the size of a file. Available formats are &#34;SI&#34;,\n&#34;IEC&#34; or &#34;JEDEC&#34;. See <a href=\"http://en.wikipedia.org/wiki/Byte\" target=\"_blank\" rel=\"noopener noreferrer\">the Wikipedia article on\nByte</a> for more information on those formats.\n</p></li></ul>\n<p>\n&#64;since 7.4\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.configuration.default/Contributions/org.nuxeo.ecm.platform.ui.web.configuration.default--configuration",
              "id": "org.nuxeo.ecm.platform.ui.web.configuration.default--configuration",
              "registrationOrder": 42,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n\n    <documentation>\n      This contribution is the default contribution for JSF configurations.\n\n      Here are more details about some of them:\n      <ul>\n        <li>\n          <strong>nuxeo.jsf.enableDoubleClickShield</strong>: enables a shield on forms to prevent users from\n          submitting twice the same form (accidental double-click).\n        </li>\n        <li>\n          <strong>nuxeo.jsf.defaultBytePrefixFormat</strong>: defines the default byte prefix format used by the\n          printFileSize JSF function, that displays a pretty print of the size of a file. Available formats are \"SI\",\n          \"IEC\" or \"JEDEC\". See <a href=\"http://en.wikipedia.org/wiki/Byte\" target=\"_blank\">the Wikipedia article on\n          Byte</a> for more information on those formats.\n        </li>\n      </ul>\n\n      @since 7.4\n    </documentation>\n\n    <property name=\"nuxeo.jsf.enableDoubleClickShield\">true</property>\n    <property name=\"nuxeo.jsf.defaultBytePrefixFormat\">SI</property>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "\n      Property that allows removing merging features on alias tags\n      (nxu:set), useful for backport of optimization on maintenance branches.\n\n      @since 6.0\n    \n",
              "documentationHtml": "<p>\nProperty that allows removing merging features on alias tags\n(nxu:set), useful for backport of optimization on maintenance branches.\n</p><p>\n&#64;since 6.0\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.configuration.default/Contributions/org.nuxeo.ecm.platform.ui.web.configuration.default--configuration1",
              "id": "org.nuxeo.ecm.platform.ui.web.configuration.default--configuration1",
              "registrationOrder": 43,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <documentation>\n      Property that allows removing merging features on alias tags\n      (nxu:set), useful for backport of optimization on maintenance branches.\n\n      @since 6.0\n    </documentation>\n    <property name=\"nuxeo.jsf.removeAliasOptims\">false</property>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "\n      Property that allows removing optimization features on alias\n      tags (nxu:set and associated), useful for backport of optimization on\n      maintenance branches.\n\n      @since 8.2\n    \n",
              "documentationHtml": "<p>\nProperty that allows removing optimization features on alias\ntags (nxu:set and associated), useful for backport of optimization on\nmaintenance branches.\n</p><p>\n&#64;since 8.2\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.configuration.default/Contributions/org.nuxeo.ecm.platform.ui.web.configuration.default--configuration2",
              "id": "org.nuxeo.ecm.platform.ui.web.configuration.default--configuration2",
              "registrationOrder": 44,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <documentation>\n      Property that allows removing optimization features on alias\n      tags (nxu:set and associated), useful for backport of optimization on\n      maintenance branches.\n\n      @since 8.2\n    </documentation>\n    <property name=\"nuxeo.jsf.removeAliasOptimsReloaded\">false</property>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.configuration.default/Contributions/org.nuxeo.ecm.platform.ui.web.configuration.default--configuration3",
              "id": "org.nuxeo.ecm.platform.ui.web.configuration.default--configuration3",
              "registrationOrder": 45,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <property name=\"nuxeo.jsf.debug.log_min_duration_ms\">-1</property>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "\n      Property that allows an alternative management of missing rows in an EditableModel object.\n\n      @since 10.3\n    \n",
              "documentationHtml": "<p>\nProperty that allows an alternative management of missing rows in an EditableModel object.\n</p><p>\n&#64;since 10.3\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.configuration.default/Contributions/org.nuxeo.ecm.platform.ui.web.configuration.default--configuration4",
              "id": "org.nuxeo.ecm.platform.ui.web.configuration.default--configuration4",
              "registrationOrder": 46,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <documentation>\n      Property that allows an alternative management of missing rows in an EditableModel object.\n\n      @since 10.3\n    </documentation>\n    <property name=\"nuxeo.jsf.skipMissingRow\">false</property>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.configuration.default",
          "name": "org.nuxeo.ecm.platform.ui.web.configuration.default",
          "requirements": [],
          "resolutionOrder": 561,
          "services": [],
          "startOrder": 548,
          "version": "2023.55.23",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.ui.web.configuration.default\">\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n\n    <documentation>\n      This contribution is the default contribution for JSF configurations.\n\n      Here are more details about some of them:\n      <ul>\n        <li>\n          <strong>nuxeo.jsf.enableDoubleClickShield</strong>: enables a shield on forms to prevent users from\n          submitting twice the same form (accidental double-click).\n        </li>\n        <li>\n          <strong>nuxeo.jsf.defaultBytePrefixFormat</strong>: defines the default byte prefix format used by the\n          printFileSize JSF function, that displays a pretty print of the size of a file. Available formats are \"SI\",\n          \"IEC\" or \"JEDEC\". See <a href=\"http://en.wikipedia.org/wiki/Byte\" target=\"_blank\">the Wikipedia article on\n          Byte</a> for more information on those formats.\n        </li>\n      </ul>\n\n      @since 7.4\n    </documentation>\n\n    <property name=\"nuxeo.jsf.enableDoubleClickShield\">true</property>\n    <property name=\"nuxeo.jsf.defaultBytePrefixFormat\">SI</property>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <documentation>\n      Property that allows removing merging features on alias tags\n      (nxu:set), useful for backport of optimization on maintenance branches.\n\n      @since 6.0\n    </documentation>\n    <property name=\"nuxeo.jsf.removeAliasOptims\">false</property>\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <documentation>\n      Property that allows removing optimization features on alias\n      tags (nxu:set and associated), useful for backport of optimization on\n      maintenance branches.\n\n      @since 8.2\n    </documentation>\n    <property name=\"nuxeo.jsf.removeAliasOptimsReloaded\">false</property>\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\"\n    point=\"configuration\">\n    <property name=\"nuxeo.jsf.debug.log_min_duration_ms\">-1</property>\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <documentation>\n      Property that allows an alternative management of missing rows in an EditableModel object.\n\n      @since 10.3\n    </documentation>\n    <property name=\"nuxeo.jsf.skipMissingRow\">false</property>\n  </extension>\n\n</component>",
          "xmlFileName": "/OSGI-INF/jsfconfiguration-properties.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--loginScreen",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.login.startup.page.jsf.contrib/Contributions/org.nuxeo.login.startup.page.jsf.contrib--loginScreen",
              "id": "org.nuxeo.login.startup.page.jsf.contrib--loginScreen",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"loginScreen\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n    <loginScreenConfig>\n      <startupPages>\n        <startupPage id=\"jsf\" priority=\"10\">\n          <path>nxstartup.faces</path>\n        </startupPage>\n      </startupPages>\n    </loginScreenConfig>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.login.startup.page.jsf.contrib",
          "name": "org.nuxeo.login.startup.page.jsf.contrib",
          "requirements": [],
          "resolutionOrder": 562,
          "services": [],
          "startOrder": 693,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.login.startup.page.jsf.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\" point=\"loginScreen\">\n    <loginScreenConfig>\n      <startupPages>\n        <startupPage id=\"jsf\" priority=\"10\">\n          <path>nxstartup.faces</path>\n        </startupPage>\n      </startupPages>\n    </loginScreenConfig>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/login-startup-page-jsf-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.DocumentValidationService--activations",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.DocumentValidationService.activations/Contributions/org.nuxeo.ecm.platform.ui.web.DocumentValidationService.activations--activations",
              "id": "org.nuxeo.ecm.platform.ui.web.DocumentValidationService.activations--activations",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.DocumentValidationService",
                "name": "org.nuxeo.ecm.core.api.DocumentValidationService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"activations\" target=\"org.nuxeo.ecm.core.api.DocumentValidationService\">\n    <validation activated=\"true\" context=\"jsfValidator\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui.web.DocumentValidationService.activations",
          "name": "org.nuxeo.ecm.platform.ui.web.DocumentValidationService.activations",
          "requirements": [],
          "resolutionOrder": 563,
          "services": [],
          "startOrder": 541,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.DocumentValidationService.activations\">\n\n  <extension target=\"org.nuxeo.ecm.core.api.DocumentValidationService\" point=\"activations\">\n    <validation context=\"jsfValidator\" activated=\"true\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/documentvalidationservice-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService--codecs",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.url.codec.jsf.contribs/Contributions/org.nuxeo.url.codec.jsf.contribs--codecs",
              "id": "org.nuxeo.url.codec.jsf.contribs--codecs",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.url.service.DocumentViewCodecService",
                "name": "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService",
                "type": "service"
              },
              "version": "2023.55.23",
              "xml": "<extension point=\"codecs\" target=\"org.nuxeo.ecm.platform.url.service.DocumentViewCodecService\">\n    <documentViewCodec class=\"org.nuxeo.ui.web.url.codec.JSFNotificationDocumentIdCodec\" enabled=\"true\" name=\"notificationDocId\" prefix=\"nxdoc\" priority=\"10\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui/org.nuxeo.url.codec.jsf.contribs",
          "name": "org.nuxeo.url.codec.jsf.contribs",
          "requirements": [],
          "resolutionOrder": 564,
          "services": [],
          "startOrder": 768,
          "version": "2023.55.23",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.url.codec.jsf.contribs\">\n\n  <extension target=\"org.nuxeo.ecm.platform.url.service.DocumentViewCodecService\" point=\"codecs\">\n    <documentViewCodec name=\"notificationDocId\" enabled=\"true\" prefix=\"nxdoc\" priority=\"10\"\n      class=\"org.nuxeo.ui.web.url.codec.JSFNotificationDocumentIdCodec\" />\n  </extension>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/url-codecs-jsf-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-ui-web-2023.55.23.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.ui/org.nuxeo.ecm.platform.ui",
      "id": "org.nuxeo.ecm.platform.ui",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuild-Jdk-Spec: 17\r\nBundle-ManifestVersion: 2\r\nExport-Package: org.nuxeo.ecm.platform.ui.web.api,org.nuxeo.ecm.platform\r\n .ui.web.binding,org.nuxeo.ecm.platform.ui.web.cache,org.nuxeo.ecm.platf\r\n orm.ui.web.component,org.nuxeo.ecm.platform.ui.web.component.date,org.n\r\n uxeo.ecm.platform.ui.web.component.document,org.nuxeo.ecm.platform.ui.w\r\n eb.component.editor,org.nuxeo.ecm.platform.ui.web.component.file,org.nu\r\n xeo.ecm.platform.ui.web.component.list,org.nuxeo.ecm.platform.ui.web.co\r\n nverter,org.nuxeo.ecm.platform.ui.web.directory,org.nuxeo.ecm.platform.\r\n ui.web.htmleditor.api,org.nuxeo.ecm.platform.ui.web.htmleditor.service,\r\n org.nuxeo.ecm.platform.ui.web.invalidations,org.nuxeo.ecm.platform.ui.w\r\n eb.lifecycle,org.nuxeo.ecm.platform.ui.web.model,org.nuxeo.ecm.platform\r\n .ui.web.model.impl,org.nuxeo.ecm.platform.ui.web.multipart,org.nuxeo.ec\r\n m.platform.ui.web.pagination,org.nuxeo.ecm.platform.ui.web.pathelements\r\n ,org.nuxeo.ecm.platform.ui.web.rest,org.nuxeo.ecm.platform.ui.web.rest.\r\n api,org.nuxeo.ecm.platform.ui.web.rest.descriptors,org.nuxeo.ecm.platfo\r\n rm.ui.web.rest.services,org.nuxeo.ecm.platform.ui.web.restAPI,org.nuxeo\r\n .ecm.platform.ui.web.restAPI.service,org.nuxeo.ecm.platform.ui.web.rich\r\n faces,org.nuxeo.ecm.platform.ui.web.seamremoting,org.nuxeo.ecm.platform\r\n .ui.web.shield,org.nuxeo.ecm.platform.ui.web.tag.fn,org.nuxeo.ecm.platf\r\n orm.ui.web.tag.handler,org.nuxeo.ecm.platform.ui.web.tag.jsf,org.nuxeo.\r\n ecm.platform.ui.web.tag.jsf.html,org.nuxeo.ecm.platform.ui.web.util,org\r\n .nuxeo.ecm.platform.ui.web.util.files\r\nPrivate-Package: .\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: Nuxeo ECM Web Platform Fragment\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nRequire-Bundle: org.nuxeo.ecm.platform.mimetype.api\r\nBundle-Version: 0.0.0.SNAPSHOT\r\nNuxeo-Component: OSGI-INF/authentication-contrib.xml,OSGI-INF/restAPI-fr\r\n amework.xml,OSGI-INF/restAPI-contrib.xml,OSGI-INF/urlservice-framework.\r\n xml,OSGI-INF/urlservice-contrib.xml,OSGI-INF/htmleditor-framework.xml,O\r\n SGI-INF/htmleditor-contrib.xml,OSGI-INF/request-controler-contrib.xml,O\r\n SGI-INF/seamremotingjsbuilder-framework.xml,OSGI-INF/reload-jsf-contrib\r\n .xml,OSGI-INF/username-cache-config.xml,OSGI-INF/jsfblobuploader-servic\r\n e.xml,OSGI-INF/jsfconfiguration-properties.xml,OSGI-INF/login-startup-p\r\n age-jsf-contrib.xml,OSGI-INF/documentvalidationservice-contrib.xml,OSGI\r\n -INF/url-codecs-jsf-contrib.xml\r\nImport-Package: com.noelios.restlet.ext.servlet;resolution:=optional,com\r\n .noelios.restlet.http;resolution:=optional,com.sun.facelets;resolution:\r\n =optional,com.sun.facelets.component;resolution:=optional,com.sun.facel\r\n ets.el;resolution:=optional,com.sun.facelets.tag;resolution:=optional,c\r\n om.sun.facelets.tag.jsf;resolution:=optional,com.sun.facelets.tag.jsf.h\r\n tml;resolution:=optional,com.sun.facelets.util;resolution:=optional,com\r\n .sun.faces.lifecycle;resolution:=optional,com.sun.faces.renderkit.html_\r\n basic;resolution:=optional,com.sun.faces.util;resolution:=optional,java\r\n x.annotation;version=\"1.0\",javax.ejb,javax.el,javax.faces,javax.faces.a\r\n pplication,javax.faces.component,javax.faces.component.html,javax.faces\r\n .context,javax.faces.convert,javax.faces.el,javax.faces.event,javax.fac\r\n es.lifecycle,javax.faces.model,javax.faces.render,javax.faces.validator\r\n ,javax.faces.webapp,javax.interceptor,javax.naming,javax.security.auth.\r\n login,javax.servlet;resolution:=optional,javax.servlet.http,javax.servl\r\n et.jsp.tagext;resolution:=optional,javax.transaction;version=\"1.1\",org.\r\n ajax4jsf.javascript;resolution:=optional,org.ajax4jsf.resource;resoluti\r\n on:=optional,org.ajax4jsf.webapp.taglib;resolution:=optional,org.apache\r\n .commons.fileupload,org.apache.commons.fileupload.disk,org.apache.commo\r\n ns.fileupload.servlet,org.apache.commons.lang,org.apache.commons.loggin\r\n g,org.dom4j,org.dom4j.dom,org.dom4j.io,org.dom4j.tree;version=\"1.6.1\",o\r\n rg.jboss.seam,org.jboss.seam.annotations;resolution:=optional,org.jboss\r\n .seam.annotations.intercept;resolution:=optional,org.jboss.seam.annotat\r\n ions.remoting;resolution:=optional,org.jboss.seam.annotations.web;resol\r\n ution:=optional,org.jboss.seam.contexts;resolution:=optional,org.jboss.\r\n seam.core,org.jboss.seam.faces,org.jboss.seam.intercept,org.jboss.seam.\r\n mock,org.jboss.seam.servlet,org.jboss.seam.transaction,org.jboss.seam.u\r\n i.component;resolution:=optional,org.jboss.seam.ui.component.html;resol\r\n ution:=optional,org.jboss.seam.util,org.jboss.seam.web,org.nuxeo.common\r\n .utils,org.nuxeo.common.utils.i18n,org.nuxeo.common.xmap.annotation,org\r\n .nuxeo.ecm.core;api=split,org.nuxeo.ecm.core.api;api=split,org.nuxeo.ec\r\n m.core.api.facet,org.nuxeo.ecm.core.api.impl,org.nuxeo.ecm.core.api.imp\r\n l.blob,org.nuxeo.ecm.core.api.model,org.nuxeo.ecm.core.api.model.impl,o\r\n rg.nuxeo.ecm.core.api.repository,org.nuxeo.ecm.core.api.security,org.nu\r\n xeo.ecm.core.io,org.nuxeo.ecm.core.io.impl,org.nuxeo.ecm.core.io.impl.p\r\n lugins,org.nuxeo.ecm.core.query.sql,org.nuxeo.ecm.core.query.sql.model,\r\n org.nuxeo.ecm.core.schema,org.nuxeo.ecm.core.schema.types,org.nuxeo.ecm\r\n .core.search.api.client.querymodel,org.nuxeo.ecm.core.utils,org.nuxeo.e\r\n cm.directory;api=split,org.nuxeo.ecm.directory.api,org.nuxeo.ecm.platfo\r\n rm.actions,org.nuxeo.ecm.platform.el,org.nuxeo.ecm.platform.filemanager\r\n .api,org.nuxeo.ecm.platform.mimetype,org.nuxeo.ecm.platform.mimetype.in\r\n terfaces,org.nuxeo.ecm.platform.types,org.nuxeo.ecm.platform.types.adap\r\n ter,org.nuxeo.ecm.platform.ui.web.auth,org.nuxeo.ecm.platform.ui.web.au\r\n th.plugins,org.nuxeo.ecm.platform.ui.web.model,org.nuxeo.ecm.platform.u\r\n i.web.model.impl,org.nuxeo.ecm.platform.url,org.nuxeo.ecm.platform.url.\r\n api,org.nuxeo.ecm.platform.url.codec,org.nuxeo.ecm.platform.usermanager\r\n ,org.nuxeo.ecm.platform.util,org.nuxeo.ecm.platform.web.common.exceptio\r\n nhandling,org.nuxeo.ecm.platform.web.common.exceptionhandling.service,o\r\n rg.nuxeo.ecm.platform.web.common.resources,org.nuxeo.ecm.platform.web.c\r\n ommon.vh,org.nuxeo.runtime,org.nuxeo.runtime.api,org.nuxeo.runtime.mode\r\n l,org.nuxeo.runtime.transaction,org.restlet;resolution:=optional,org.re\r\n stlet.data;resolution:=optional,org.restlet.resource;resolution:=option\r\n al,org.restlet.util;resolution:=optional,org.w3c.dom,org.xml.sax\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.ui;singleton:=true\r\nBundle-Activator: org.nuxeo.ecm.platform.ui.web.UIWebActivator\r\n\r\n",
      "maxResolutionOrder": 564,
      "minResolutionOrder": 549,
      "packages": [
        "nuxeo-jsf-ui"
      ],
      "requirements": [
        "org.nuxeo.ecm.platform.mimetype.api"
      ],
      "version": "2023.55.23"
    }
  ],
  "creationDate": 1793874281513,
  "key": "Nuxeo Platform-2023.55",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.admin.center.analytics.dashboards",
        "org.nuxeo.admin.center.jsf",
        "org.nuxeo.admin.center.monitoring",
        "org.nuxeo.admin.center.oauth.opensocial",
        "org.nuxeo.ecm.automation.jsf",
        "org.nuxeo.elasticsearch.web",
        "org.nuxeo.ecm.localconf.web",
        "org.nuxeo.ecm.actions.jsf",
        "org.nuxeo.ecm.platform.audio.jsf",
        "org.nuxeo.ecm.platform.audit.web",
        "org.nuxeo.ecm.platform.comment.web",
        "org.nuxeo.ecm.platform.contentview.jsf",
        "org.nuxeo.ecm.directory.web",
        "org.nuxeo.ecm.platform.forms.layout.client",
        "org.nuxeo.ecm.platform.forms.layout.io",
        "org.nuxeo.ecm.platform.forms.layout.io.plugins",
        "org.nuxeo.ecm.platform.picture.jsf",
        "org.nuxeo.ecm.platform.io.web",
        "org.nuxeo.ecm.platform.login.token.jsf",
        "org.nuxeo.ecm.platform.notification.web",
        "org.nuxeo.ecm.platform.publisher.web",
        "org.nuxeo.ecm.relations.web",
        "org.nuxeo.ecm.platform.rendition.web",
        "org.nuxeo.ecm.platform.search.api",
        "org.nuxeo.ecm.platform.suggestbox.jsf",
        "org.nuxeo.ecm.platform.tag.web",
        "org.nuxeo.ecm.platform.task.web",
        "org.nuxeo.ecm.platform.ui.select2",
        "org.nuxeo.ecm.platform.ui",
        "org.nuxeo.ecm.platform.userworkspace.web",
        "org.nuxeo.ecm.platform.video.jsf",
        "org.nuxeo.ecm.webapp.ui",
        "org.nuxeo.ecm.webapp.base",
        "org.nuxeo.ecm.webapp.core",
        "org.nuxeo.ecm.platform.preview.jsf",
        "org.nuxeo.ecm.platform.routing.dashboard",
        "org.nuxeo.ecm.platform.routing.default.jsf",
        "org.nuxeo.ecm.platform.routing.web",
        "org.nuxeo.search.ui",
        "org.nuxeo.theme.migration",
        "org.nuxeo.ecm.user.center",
        "org.nuxeo.ecm.user.center.dashboard",
        "org.nuxeo.ecm.user.center.dashboard.jsf",
        "org.nuxeo.ecm.user.center.notification",
        "org.nuxeo.ecm.user.center.oauth",
        "org.nuxeo.ecm.user.center.profile.jsf",
        "org.nuxeo.web.resources.jsf"
      ],
      "conflicts": [],
      "dependencies": [],
      "hierarchyPath": "/nuxeo-jsf-ui-2023.55.23",
      "id": "nuxeo-jsf-ui-2023.55.23",
      "name": "nuxeo-jsf-ui",
      "optionalDependencies": [],
      "packageType": "addon",
      "title": "Nuxeo JSF UI",
      "version": "2023.55.23"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1793874281513,
  "version": "2023.55"
}